/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.clinicariobamba.Controladores;


import com.clinicariobamba.ReglasNegocio.Clases.Dependencia;
import com.clinicariobamba.ReglasNegocio.Clases.Organizacion;
import com.clinicariobamba.ReglasNegocio.Clases.OrganizacionDependencia;
import com.clinicariobamba.ReglasNegocio.Funciones.FuncionesDependencia;
import com.clinicariobamba.ReglasNegocio.Funciones.FuncionesOrganizacion;
import com.clinicariobamba.ReglasNegocio.Funciones.FuncionesOrganizacionDependencia;
import java.io.Serializable;
import java.util.ArrayList;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import org.primefaces.context.DefaultRequestContext;

/**
 *
 * @author Gis
 */
@ManagedBean
@ViewScoped
public class ControladorOrganizacionDependencia implements Serializable{

   private OrganizacionDependencia orgD; 
   private ArrayList<OrganizacionDependencia> lstOrgD;
   private OrganizacionDependencia orgDSel;
   private ArrayList<Organizacion> lstOrg;
   private ArrayList<Dependencia> lstDep;

   
   
   
    public ControladorOrganizacionDependencia() {
        this.orgD = new OrganizacionDependencia();
        ObtenerOrgDependencias();
        this.lstOrg= FuncionesOrganizacion.obtenerOrganizaciones();
        this.lstDep = FuncionesDependencia.obtenerDependencias();
    }

    public OrganizacionDependencia getOrgD() {
        return orgD;
    }

    public void setOrgD(OrganizacionDependencia orgD) {
        this.orgD = orgD;
    }

    public ArrayList<OrganizacionDependencia> getLstOrgD() {
        return lstOrgD;
    }

    public void setLstOrgD(ArrayList<OrganizacionDependencia> lstOrgD) {
        this.lstOrgD = lstOrgD;
    }

    public ArrayList<Organizacion> getLstOrg() {
        return lstOrg;
    }

    public void setLstOrg(ArrayList<Organizacion> lstOrg) {
        this.lstOrg = lstOrg;
    }

    public ArrayList<Dependencia> getLstDep() {
        return lstDep;
    }

    public void setLstDep(ArrayList<Dependencia> lstDep) {
        this.lstDep = lstDep;
    }

    public OrganizacionDependencia ObtenerOrgD(int id)
    {
       return FuncionesOrganizacionDependencia.obtenerOrganizacionDependenciaId(id);
    }
   

    public OrganizacionDependencia getOrgDSel() {
        return orgDSel;
    }

    public void setOrgDSel(OrganizacionDependencia orgDSel) {
        this.orgDSel = orgDSel;
    }
    public void ObtenerOrgDependencias()
    {
       this.lstOrgD = FuncionesOrganizacionDependencia.obtenerOrganizacionDependencia();
    }
    public void insertarOrgD (){
        try {
            if (FuncionesOrganizacionDependencia.insertar(orgD)) {
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO,
                        "Información", "Datos Insertados");
                FacesContext.getCurrentInstance().addMessage(null, message);
                ObtenerOrgDependencias();
                DefaultRequestContext.getCurrentInstance().execute("wdlgNuevoOrgDependencia.hide()");
                orgD = new OrganizacionDependencia();
            } else {
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                        "Alerta!!", "Error al Insertar");
                FacesContext.getCurrentInstance().addMessage(null, message);
            }
        } catch (Exception e) {
            FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                    "Alerta!!", e.getMessage());
            FacesContext.getCurrentInstance().addMessage(null, message);
        }        
    }
    
    public void actualizarOrgD (){
        try {
            if (FuncionesOrganizacionDependencia.modificar(orgDSel)) {
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO,
                        "Información", "Datos Actualizados");
                FacesContext.getCurrentInstance().addMessage(null, message);
               ObtenerOrgDependencias();
                DefaultRequestContext.getCurrentInstance().execute("wdlgEditarOrgDependencia.hide()");
                orgD = new OrganizacionDependencia();
            } else {
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                        "Alerta!!", "Error al Actualizar");
                FacesContext.getCurrentInstance().addMessage(null, message);
            }
        } catch (Exception e) {
            FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                    "Alerta!!", e.getMessage());
            FacesContext.getCurrentInstance().addMessage(null, message);
        }        
    }
    
    public void eliminarOrgD (){
        try {
            if (FuncionesOrganizacionDependencia.eliminar(orgDSel)) {
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO,
                        "Información", "Datos Eliminados");
                FacesContext.getCurrentInstance().addMessage(null, message);
                ObtenerOrgDependencias();
                DefaultRequestContext.getCurrentInstance().execute("wdlgEliminarOrgDependencia.hide()");
                orgD = new OrganizacionDependencia();
            } else {
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                        "Alerta!!", "Error al Eliminar");
                FacesContext.getCurrentInstance().addMessage(null, message);
            }
        } catch (Exception e) {
            FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                    "Alerta!!", e.getMessage());
            FacesContext.getCurrentInstance().addMessage(null, message);
        }        
    }
    
}
